/*
 * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The OpenAirInterface Software Alliance licenses this file to You under
 * the OAI Public License, Version 1.1  (the "License"); you may not use this file
 * except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.openairinterface.org/?page_id=698
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *-------------------------------------------------------------------------------
 * For more information about the OpenAirInterface (OAI) Software Alliance:
 *      contact@openairinterface.org
 */



#ifndef E2AP_READER_H
#define E2AP_READER_H

/* Generated by flatcc 0.6.1-dev FlatBuffers schema compiler for C by dvide.com */

#ifndef FLATBUFFERS_COMMON_READER_H
#include "flatbuffers_common_reader.h"
#endif
#ifndef GLOBAL_PROCEDURES_READER_H
#include "global_procedures_reader.h"
#endif
#ifndef FUNCTIONAL_PROCEDURES_READER_H
#include "functional_procedures_reader.h"
#endif
#include "flatcc/flatcc_flatbuffers.h"
#ifndef __alignas_is_defined
#include <stdalign.h>
#endif
#include "flatcc/flatcc_prologue.h"
#ifndef flatbuffers_identifier
#define flatbuffers_identifier 0
#endif
#ifndef flatbuffers_extension
#define flatbuffers_extension ".bin"
#endif


typedef const struct e2ap_E2Message_table *e2ap_E2Message_table_t;
typedef struct e2ap_E2Message_table *e2ap_E2Message_mutable_table_t;
typedef const flatbuffers_uoffset_t *e2ap_E2Message_vec_t;
typedef flatbuffers_uoffset_t *e2ap_E2Message_mutable_vec_t;
#ifndef e2ap_E2Message_file_identifier
#define e2ap_E2Message_file_identifier flatbuffers_identifier
#endif
/* deprecated, use e2ap_E2Message_file_identifier */
#ifndef e2ap_E2Message_identifier
#define e2ap_E2Message_identifier flatbuffers_identifier
#endif
#define e2ap_E2Message_type_hash ((flatbuffers_thash_t)0x459d2c77)
#define e2ap_E2Message_type_identifier "\x77\x2c\x9d\x45"


typedef uint8_t e2ap_Message_union_type_t;
__flatbuffers_define_integer_type(e2ap_Message, e2ap_Message_union_type_t, 8)
__flatbuffers_define_union(flatbuffers_, e2ap_Message)
#define e2ap_Message_NONE ((e2ap_Message_union_type_t)UINT8_C(0))
#define e2ap_Message_subscriptionRequest ((e2ap_Message_union_type_t)UINT8_C(1))
#define e2ap_Message_subscriptionResponse ((e2ap_Message_union_type_t)UINT8_C(2))
#define e2ap_Message_subscriptionFailure ((e2ap_Message_union_type_t)UINT8_C(3))
#define e2ap_Message_subscriptionDeleteRequest ((e2ap_Message_union_type_t)UINT8_C(4))
#define e2ap_Message_subscriptionDeleteResponse ((e2ap_Message_union_type_t)UINT8_C(5))
#define e2ap_Message_subscriptionDeleteFailure ((e2ap_Message_union_type_t)UINT8_C(6))
#define e2ap_Message_indication ((e2ap_Message_union_type_t)UINT8_C(7))
#define e2ap_Message_controlRequest ((e2ap_Message_union_type_t)UINT8_C(8))
#define e2ap_Message_controlAcknowledge ((e2ap_Message_union_type_t)UINT8_C(9))
#define e2ap_Message_controlFailure ((e2ap_Message_union_type_t)UINT8_C(10))
#define e2ap_Message_errorIndication ((e2ap_Message_union_type_t)UINT8_C(11))
#define e2ap_Message_setupRequest ((e2ap_Message_union_type_t)UINT8_C(12))
#define e2ap_Message_setupResponse ((e2ap_Message_union_type_t)UINT8_C(13))
#define e2ap_Message_setupFailure ((e2ap_Message_union_type_t)UINT8_C(14))
#define e2ap_Message_resetRequest ((e2ap_Message_union_type_t)UINT8_C(15))
#define e2ap_Message_resetResponse ((e2ap_Message_union_type_t)UINT8_C(16))

static inline const char *e2ap_Message_type_name(e2ap_Message_union_type_t type)
{
    switch (type) {
    case e2ap_Message_NONE: return "NONE";
    case e2ap_Message_subscriptionRequest: return "subscriptionRequest";
    case e2ap_Message_subscriptionResponse: return "subscriptionResponse";
    case e2ap_Message_subscriptionFailure: return "subscriptionFailure";
    case e2ap_Message_subscriptionDeleteRequest: return "subscriptionDeleteRequest";
    case e2ap_Message_subscriptionDeleteResponse: return "subscriptionDeleteResponse";
    case e2ap_Message_subscriptionDeleteFailure: return "subscriptionDeleteFailure";
    case e2ap_Message_indication: return "indication";
    case e2ap_Message_controlRequest: return "controlRequest";
    case e2ap_Message_controlAcknowledge: return "controlAcknowledge";
    case e2ap_Message_controlFailure: return "controlFailure";
    case e2ap_Message_errorIndication: return "errorIndication";
    case e2ap_Message_setupRequest: return "setupRequest";
    case e2ap_Message_setupResponse: return "setupResponse";
    case e2ap_Message_setupFailure: return "setupFailure";
    case e2ap_Message_resetRequest: return "resetRequest";
    case e2ap_Message_resetResponse: return "resetResponse";
    default: return "";
    }
}

static inline int e2ap_Message_is_known_type(e2ap_Message_union_type_t type)
{
    switch (type) {
    case e2ap_Message_NONE: return 1;
    case e2ap_Message_subscriptionRequest: return 1;
    case e2ap_Message_subscriptionResponse: return 1;
    case e2ap_Message_subscriptionFailure: return 1;
    case e2ap_Message_subscriptionDeleteRequest: return 1;
    case e2ap_Message_subscriptionDeleteResponse: return 1;
    case e2ap_Message_subscriptionDeleteFailure: return 1;
    case e2ap_Message_indication: return 1;
    case e2ap_Message_controlRequest: return 1;
    case e2ap_Message_controlAcknowledge: return 1;
    case e2ap_Message_controlFailure: return 1;
    case e2ap_Message_errorIndication: return 1;
    case e2ap_Message_setupRequest: return 1;
    case e2ap_Message_setupResponse: return 1;
    case e2ap_Message_setupFailure: return 1;
    case e2ap_Message_resetRequest: return 1;
    case e2ap_Message_resetResponse: return 1;
    default: return 0;
    }
}


struct e2ap_E2Message_table { uint8_t unused__; };

static inline size_t e2ap_E2Message_vec_len(e2ap_E2Message_vec_t vec)
__flatbuffers_vec_len(vec)
static inline e2ap_E2Message_table_t e2ap_E2Message_vec_at(e2ap_E2Message_vec_t vec, size_t i)
__flatbuffers_offset_vec_at(e2ap_E2Message_table_t, vec, i, 0)
__flatbuffers_table_as_root(e2ap_E2Message)

__flatbuffers_define_union_field(flatbuffers_, 1, e2ap_E2Message, msg, e2ap_Message, 0)


#include "flatcc/flatcc_epilogue.h"
#endif /* E2AP_READER_H */
